-------------------------------------------------------------------------------
-- Подсказки к файлам (FarHints.dll © Максим Русов). © SimSU
-------------------------------------------------------------------------------
local GUIDPlugin_FarHints = "CDF48DA0-0334-4169-8453-69048DD3B51C"
if not Plugin.Exist(GUIDPlugin_FarHints) then return end

---- Настройки
local function Settings()
-- Начало файла Profile\SimSU\Plugin_FarHint.cfg
return{
  KeyShow="Alt"; --PriorShow=50;
  KeyHide="Alt Esc"; PriorHide=51;
  KeyIncrese="Add"; PriorIncrese=51;
  KeyDecrese="Subtract"; PriorDecrese=51;
}
-- Конец файла Profile\SimSU\Plugin_FarHint.cfg
end

---- Локализация
_G.far.lang=far.lang or win.GetEnv("farlang")
-- Встроенные языки / Buildin laguages
local function Messages()
if far.lang=="Russian" then
-- Начало файла Profile\SimSU\Plugin_FarHintRussian.lng
return{
  DescrShow="Показать подсказку (FarHints.dll © Максим Русов). © SimSU";
  DescrHide="Скрыть подсказку (FarHints.dll © Максим Русов). © SimSU";
  DescrIncrese="Увеличить эскиз (FarHints.dll © Максим Русов). © SimSU";
  DescrDecrese="Уменьшить эскиз (FarHints.dll © Максим Русов). © SimSU";
}
-- Конец файла Profile\SimSU\Plugin_FarHintRussian.lng
else--if far.lang=="English" then
-- Begin of file Profile\SimSU\Plugin_FarHintEnglish.lng
return{
  DescrShow="Показать подсказку (FarHints.dll © Максим Русов). © SimSU";
  DescrHide="Скрыть подсказку (FarHints.dll © Максим Русов). © SimSU";
  DescrIncrese="Увеличить эскиз (FarHints.dll © Максим Русов). © SimSU";
  DescrDecrese="Уменьшить эскиз (FarHints.dll © Максим Русов). © SimSU";
}
-- End of file Profile\SimSU\Plugin_FarHintEnglish.lng
end end

local M=(loadfile(win.GetEnv("FARPROFILE").."\\SimSU\\Plugin_FarHint"..far.lang..".lng") or Messages)()
local S=(loadfile(win.GetEnv("FARLOCALPROFILE").."\\SimSU\\Plugin_FarHint.cfg") or loadfile(win.GetEnv("FARPROFILE").."\\SimSU\\Plugin_FarHint.cfg") or Settings)()

local SimSU=SimSU or {}
SimSU.Plugin_FarHint={}
-------------------------------------------------------------------------------
function SimSU.Plugin_FarHint.Show()
  Plugin.Call(GUIDPlugin_FarHints,"Show",2)
end

function SimSU.Plugin_FarHint.Hide()
  Plugin.Call(GUIDPlugin_FarHints,"Hide")
end

function SimSU.Plugin_FarHint.Increse()
  Plugin.Call(GUIDPlugin_FarHints,"Size",1)
end

function SimSU.Plugin_FarHint.Decrese()
  Plugin.Call(GUIDPlugin_FarHints,"Size",-1)
end

function SimSU.Plugin_FarHint.Text(Text,X,Y,Time,Font)
  local Text= Text or ""
  local X= X or -1
  local Y= Y or -1
  local Time= Time and Time*1000 or 3000
  if Font then 
    Plugin.Call(GUIDPlugin_FarHints,"Info","")
    Plugin.Call(GUIDPlugin_FarHints,"FontSize", Font)
  end
  Plugin.Call(GUIDPlugin_FarHints,"Info",Text,X,Y,Time)
end

-------------------------------------------------------------------------------
if not Macro then return {Plugin_FarHint=SimSU.Plugin_FarHint} end

local ok, mod = pcall(require,"SimSU.Plugin_FarHint"); if ok then SimSU=mod else _G.SimSU=SimSU end
-------------------------------------------------------------------------------

Macro {area="Shell Tree"; key=S.KeyShow; priority=S.PriorShow; description=M.DescrShow;
--  condition=function() return Plugin.Exist(GUIDPlugin_FarHints) end;
  action=SimSU.Plugin_FarHint.Show;
}

Macro {area="Shell Tree"; key=S.KeyHide; priority=S.PriorHide; description=M.DescrHide;
  condition=function() return win.GetEnv("FarHint")=="1" end;
  action=SimSU.Plugin_FarHint.Hide;
}

Macro {area="Shell Tree"; key=S.KeyIncrese; priority=S.PriorIncrese; description=M.DescrIncrese;
  condition=function() return win.GetEnv("FarHint")=="1" end;
  action=SimSU.Plugin_FarHint.Increse;
}
Macro {area="Shell Tree"; key=S.KeyDecrese; priority=S.PriorDecrese; description=M.DescrDecrese;
  condition=function() return win.GetEnv("FarHint")=="1" end;
  action=SimSU.Plugin_FarHint.Decrese;
}

--Macro {area="Common"; key="Ctrl"; priority=S.PriorShow; description=M.DescrShow;
----  condition=function() return Plugin.Exist(GUIDPlugin_FarHints) end;
--  action=function() SimSU.Plugin_FarHint.Text("Пример", 20,30,0.1,25) end;
--}
